package JavaBase.ArrayTest;

/**
 * @Author：coinyang
 * @Project：JavaTest
 * @name：HanoiTower
 * @Date：2023/8/3 19:19
 */
public class HanoiTower {
    public static void main(String[] args) {
        int n = 3;  // 输入 n，表示黄金圆盘的数量
        moveHanoiTower(n, 'A', 'B', 'C');
    }

    private static void moveHanoiTower(int n, char source, char auxiliary, char target) {
        if (n == 1) {
            System.out.println("将圆盘从柱子 " + source + " 移动到柱子 " + target);
        } else {
            moveHanoiTower(n - 1, source, target, auxiliary);  // 将 n-1 个圆盘从源柱子移动到辅助柱子
            System.out.println("将圆盘从柱子 " + source + " 移动到柱子 " + target);
            moveHanoiTower(n - 1, auxiliary, source, target);  // 将 n-1 个圆盘从辅助柱子移动到目标柱子
        }
    }


}
